package com.itheima.多态.多态的弊端_05;

/*
    多态弊端:由于多态语法强制规定了编译看父类
    所以使用多态语法接收到的对象,不能直接访问子类特有成员,降低了灵活性
    解决方案:通过多态的向下转型来解决!
    扩展:多态转型
        1. 向上转型(自动类型转换) 多态默认格式
        2. 向下转型(强制类型转换) 左子右父
 */
public class Demo {
    public static void main(String[] args) {
        //多态:父类引用指向子类对象
        Anmial anmial = new Dog();
        anmial.eat();
        //向下转型(强转)
        //风险:若强转的类型不是对应对象的真实类型,那么会存在类型转换异常
        ////规避风险: 通过instanceof 关键字解决
        if (anmial instanceof Dog) {
            Dog dog = (Dog) anmial;
            dog.lookHome();
        }
    }
}
